﻿using System.Collections.Generic;

namespace SEIPropertyDataService.Entity.ViewModels
{
    /// <summary>
    /// 二元气液相平衡分析计算模型
    /// </summary>
    public class VM_BinaryAnalysisCalcModel
    {
        /// <summary>
        /// 单位集名称
        /// </summary>
        public string UnitSet { get; set; }
        /// <summary>
        /// 物性方法key
        /// </summary>
        public string PropMethod { get; set; }
        /// <summary>
        /// 参与计算的组分ID列表
        /// </summary>
        public List<int> ComponentIds { get; set; }
        /// <summary>
        /// 分析类型key
        /// </summary>
        public string AnalysisType { get; set; }
        /// <summary>
        /// 基准key
        /// </summary>
        public string Basis { get; set; }
        /// <summary>
        /// 变化组分id
        /// </summary>
        public int ComponentBasis { get; set; }

        /// <summary>
        /// 组成-变化方式，等距 = 1,对数 = 2,值列表 = 3,
        /// </summary>
        public int Vary { get; set; }
        /// <summary>
        /// 组成-起始值，变化方式为等距/对数时设置
        /// </summary>
        public double? Start { get; set; }
        /// <summary>
        /// 组成-结束值，变化方式为等距/对数时设置
        /// </summary>
        public double? End { get; set; }
        /// <summary>
        /// 组成-区间数，变化方式为等距时候，与增量互斥，只设置其中一个;变化方式为对数时必填
        /// </summary>
        public int? Quantity { get; set; }
        /// <summary>
        /// 组成-增量，变化方式为等距时候，与区间数互斥，只设置其中一个；其他变化方式不设置
        /// </summary>
        public double? Increment { get; set; }
        /// <summary>
        /// 组成-值列表，变化方式为值列表时设置
        /// </summary>
        public List<double>? ValueList { get; set; }
        /// <summary>
        /// 分析类型对应的单位Key，Txy-温度单位，Pxy-压力单位
        /// </summary>
        public string TypeUnitKey { get; set; }
        /// <summary>
        /// 分析类型对应的变化类型
        /// </summary>
        public int TypeVary { get; set; }
        /// <summary>
        /// 分析类型对应的起始值，变化方式为等距/对数时设置
        /// </summary>
        public double? TypeStart { get; set; }
        /// <summary>
        /// 分析类型对应的结束值，变化方式为等距/对数时设置
        /// </summary>
        public double? TypeEnd { get; set; }
        /// <summary>
        /// 分析类型对应的区间数，变化方式为等距时候，与增量互斥，只设置其中一个;变化方式为对数时必填
        /// </summary>
        public int? TypeQuantity { get; set; }
        /// <summary>
        /// 分析类型对应的增量，变化方式为等距时候，与区间数互斥，只设置其中一个；其他变化方式不设置
        /// </summary>
        public double? TypeIncrement { get; set; }
        /// <summary>
        /// 分析类型对应的值列表，变化方式为值列表时设置
        /// </summary>
        public List<double>? TypeValueList { get; set; }
        /// <summary>
        /// 模拟级别，1-10
        /// </summary>
        public int SIM_LEVEL { get; set; } = 5;

        /// <summary>
        /// 属性级别,1-10
        /// </summary>
        public int PROP_LEVEL { get; set; } = 5;
    }
}
